/**
 * 验证分数是否合法
 * @param score 待验证的分数值
 * @returns 验证结果对象 { isValid: boolean, message: string }
 */
export function validateScore(score: number | string): { isValid: boolean; message: string } {
    // 转换为字符串并去除前后空格
    const scoreStr = String(score).trim();

    // 检查是否为空
    if (!scoreStr) {
        return { isValid: false, message: "分数不能为空" };
    }

    // 检查是否为数字
    if (isNaN(Number(scoreStr))) {
        return { isValid: false, message: "请输入有效的数字" };
    }

    // 转换为数字
    const numScore = Number(scoreStr);

    // 检查是否在0-100范围内
    if (numScore < 0 || numScore > 100) {
        return { isValid: false, message: "分数必须在0-100之间" };
    }

    // 检查小数位数（最多2位）
    const decimalMatch = scoreStr.match(/\.\d+$/);
    if (decimalMatch && decimalMatch[0].length > 3) { // . + 最多2位小数
        return { isValid: false, message: "最多支持2位小数" };
    }

    // 所有检查通过
    return { isValid: true, message: "" };
}